<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function Foo() {
        getName = function () { alert(1);};
        return this;
    }
    Foo.getName= function () {
        alert(2);
    };
    Foo.prototype.getName = function () {
        alert(3);
    };
    var getName = function () {
        alert(4);
    };
    function getName() {
        alert(5);
    };//函数提升 比 var  低  所以  被var  覆盖了


    Foo.getName();//2
    getName();//4
    Foo().getName();//1
    getName();//1
    new Foo.getName();//2
     new Foo().getName();//3
     new new Foo.getName();//3
</script>
</body>
</html>